//
// Created by liz on 24-11-9.
//

#ifndef MY_QUEUE_H
#define MY_QUEUE_H

#include "stdint.h"
#include "stdbool.h"


#define MAX_QUEUE_SIZE 20
#define MY_QUEUE_ERROR -1
#define MY_QUEUE_OK 0

//队列结构体，item存放指针，类型自定
typedef struct
{
    void *items[MAX_QUEUE_SIZE];
    uint16_t front;
    uint16_t rear;
    uint16_t size;
}myQueue;

//初始化队列，分配内存并返回队列指针
myQueue *myQueue_init(uint16_t size);

int myQueue_push_back(myQueue *queue, void *item);
void *myQueue_pop_front(myQueue *queue);
void *myQueue_peek(myQueue *queue);

/******************判断操作********************/
//判空
bool myQueue_isEmpty(const myQueue *queue);
//判满
bool myQueue_isFull(const myQueue *queue);


#endif //MY_QUEUE_H
